﻿// See https://aka.ms/new-console-template for more information

ILogger logger = new LoggerAdapter(new LegacyLogger());
logger.Log("Adapter Pattern Example");

// 旧系统的日志接口
public class LegacyLogger
{
    public void LogMessage(string message)
    {
        Console.WriteLine("Legacy Logger: " + message);
    }
}

// 新系统的日志接口
public interface ILogger
{
    void Log(string message);
}

// 适配器类，假设我们有一个旧的日志系统 LegacyLogger，它的方法签名与我们新系统的日志接口 ILogger 不兼容。我们可以使用适配器模式来解决这个问题，加上了这个适配器类之后，我们就能复用原有代码
public class LoggerAdapter : ILogger
{
    private readonly LegacyLogger _legacyLogger;

    public LoggerAdapter(LegacyLogger legacyLogger)
    {
        _legacyLogger = legacyLogger;
    }

    public void Log(string message)
    {
        _legacyLogger.LogMessage(message);
    }
}

